for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
define(
[
'flagbit/JsonGenerator/Observer'
],
function(JsonGeneratorObserver) {
/**
* @class
* @param {(HTMLElement|HTMLTextAreaElement)} $element
*/
var JsonGeneratorInput = function($element) {
* @public
* @type {JsonGeneratorObserver}
this.observer = new JsonGeneratorObserver();
* @param {Object} $data
this.write = function($data) {
$element.value = JSON.stringify($data);
this.observer.notify('write');
};
* @returns {Object}
this.read = function() {
var $data = {};
$data
if(this.isEditable()) {
$data = JSON.parse($element.value);
}
else {
$data = JSON.parse($element.innerText);
return $data;
* @returns {Boolean}
this.isEditable = function() {
return $element instanceof HTMLTextAreaElement || ($element instanceof HTMLInputElement && $element.type.toLowerCase() === 'text');
HTMLInputElement
/** global: HTMLInputElement */
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.
HTMLTextAreaElement
/** global: HTMLTextAreaElement */
this.hide = function() {
$element.style.display = 'none';
this.show = function() {
$element.style.display = '';
return JsonGeneratorInput;
});